package com.weitu.contractor.entity;

import com.weitu.permission.user.entity.User;

import java.io.Serializable;
import java.util.List;

/** 
 * 承包商管理_施工人员培训表 HSE_CM_TRAIN
 * @author LiMeng
 * date 2017/04/27 13:37
 */
public class StaffTrain implements Serializable {
    //串行版本ID
    private static final long serialVersionUID = 8126627509577022831L;

    // 主键 使用uuid
    private String id;

    // 标识
    private String code;

    // 备注
    private String remarks;

    // 删除标记 0未删除 1 已删除  默认：((0))
    private Integer delState;

    // 添加人
    private String addUserId;

    // 添加人部门Id
    private String addDeptId;

    // 添加时间
    private String addTime;

    // 修改人部门Id
    private String updateDeptId;

    // 最后修改人
    private String updateUserId;

    // 最后修改时间
    private String updateTime;

    // 培训班名称
    private String name;

    // 年度
    private Integer year;

    // 教育培训类别id（字典）
    private String trainTypeId;

    // 培训开始时间
    private String trainStartTime;

    // 培训结束时间
    private String trainEndTime;

    // 实际培训学时
    private Integer actualTrainHour;

    // 培训单位id（企业内）
    private String trainDeptId;

    // 授课人id（企业内）（多个逗号分隔）
    private String teacherId;

    // 是否企业外部授课（0企业内，1企业外）
    private Integer isTrainOutside;

    // 授课人姓名（企业外）
    private String teacherNameOutside;

    // 培训单位名称（企业外）
    private String trainDeptNameOutside;

    // 是否取证（0否，1是）
    private Integer needCertificate;

    // 培训人数
    private Integer trainNum;

    // 合格人数
    private Integer qualifiedNum;

    // 培训内容
    private String trainContent;

    // 培训总结
    private String trainSummary;

    // 考核方式
    private String examMode;

    //培训类别名称
    private String trainTypeName;

    //添加人名称
    private String addUserName;

    //添加部门名称
    private String addDeptName;

    //授课人列表
    private List<User> teacherList;
    /**
     * 获取 主键 使用uuid HSE_CM_TRAIN.id
     * @return 主键 使用uuid
     */
    public String getId() {
        return id;
    }

    /** 
     * 设置 主键 使用uuid HSE_CM_TRAIN.id
     * @param id 主键 使用uuid
     */
    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    /** 
     * 获取 标识 HSE_CM_TRAIN.code
     * @return 标识
     */
    public String getCode() {
        return code;
    }

    /** 
     * 设置 标识 HSE_CM_TRAIN.code
     * @param code 标识
     */
    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }

    /** 
     * 获取 备注 HSE_CM_TRAIN.remarks
     * @return 备注
     */
    public String getRemarks() {
        return remarks;
    }

    /** 
     * 设置 备注 HSE_CM_TRAIN.remarks
     * @param remarks 备注
     */
    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }

    /** 
     * 获取 删除标记 0未删除 1 已删除 HSE_CM_TRAIN.delState
     * @return 删除标记 0未删除 1 已删除
     */
    public Integer getDelState() {
        return delState;
    }

    /** 
     * 设置 删除标记 0未删除 1 已删除 HSE_CM_TRAIN.delState
     * @param delState 删除标记 0未删除 1 已删除
     */
    public void setDelState(Integer delState) {
        this.delState = delState;
    }

    /** 
     * 获取 添加人 HSE_CM_TRAIN.addUserId
     * @return 添加人
     */
    public String getAddUserId() {
        return addUserId;
    }

    /** 
     * 设置 添加人 HSE_CM_TRAIN.addUserId
     * @param addUserId 添加人
     */
    public void setAddUserId(String addUserId) {
        this.addUserId = addUserId == null ? null : addUserId.trim();
    }

    /** 
     * 获取 添加人部门Id HSE_CM_TRAIN.addDeptId
     * @return 添加人部门Id
     */
    public String getAddDeptId() {
        return addDeptId;
    }

    /** 
     * 设置 添加人部门Id HSE_CM_TRAIN.addDeptId
     * @param addDeptId 添加人部门Id
     */
    public void setAddDeptId(String addDeptId) {
        this.addDeptId = addDeptId == null ? null : addDeptId.trim();
    }

    /** 
     * 获取 添加时间 HSE_CM_TRAIN.addTime
     * @return 添加时间
     */
    public String getAddTime() {
        return addTime;
    }

    /** 
     * 设置 添加时间 HSE_CM_TRAIN.addTime
     * @param addTime 添加时间
     */
    public void setAddTime(String addTime) {
        this.addTime = addTime == null ? null : addTime.trim();
    }

    /** 
     * 获取 修改人部门Id HSE_CM_TRAIN.updateDeptId
     * @return 修改人部门Id
     */
    public String getUpdateDeptId() {
        return updateDeptId;
    }

    /** 
     * 设置 修改人部门Id HSE_CM_TRAIN.updateDeptId
     * @param updateDeptId 修改人部门Id
     */
    public void setUpdateDeptId(String updateDeptId) {
        this.updateDeptId = updateDeptId == null ? null : updateDeptId.trim();
    }

    /** 
     * 获取 最后修改人 HSE_CM_TRAIN.updateUserId
     * @return 最后修改人
     */
    public String getUpdateUserId() {
        return updateUserId;
    }

    /** 
     * 设置 最后修改人 HSE_CM_TRAIN.updateUserId
     * @param updateUserId 最后修改人
     */
    public void setUpdateUserId(String updateUserId) {
        this.updateUserId = updateUserId == null ? null : updateUserId.trim();
    }

    /** 
     * 获取 最后修改时间 HSE_CM_TRAIN.updateTime
     * @return 最后修改时间
     */
    public String getUpdateTime() {
        return updateTime;
    }

    /** 
     * 设置 最后修改时间 HSE_CM_TRAIN.updateTime
     * @param updateTime 最后修改时间
     */
    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime == null ? null : updateTime.trim();
    }

    /** 
     * 获取 培训班名称 HSE_CM_TRAIN.name
     * @return 培训班名称
     */
    public String getName() {
        return name;
    }

    /** 
     * 设置 培训班名称 HSE_CM_TRAIN.name
     * @param name 培训班名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /** 
     * 获取 年度 HSE_CM_TRAIN.year
     * @return 年度
     */
    public Integer getYear() {
        return year;
    }

    /** 
     * 设置 年度 HSE_CM_TRAIN.year
     * @param year 年度
     */
    public void setYear(Integer year) {
        this.year = year;
    }

    /** 
     * 获取 教育培训类别id（字典） HSE_CM_TRAIN.trainTypeId
     * @return 教育培训类别id（字典）
     */
    public String getTrainTypeId() {
        return trainTypeId;
    }

    /** 
     * 设置 教育培训类别id（字典） HSE_CM_TRAIN.trainTypeId
     * @param trainTypeId 教育培训类别id（字典）
     */
    public void setTrainTypeId(String trainTypeId) {
        this.trainTypeId = trainTypeId == null ? null : trainTypeId.trim();
    }

    /** 
     * 获取 培训开始时间 HSE_CM_TRAIN.trainStartTime
     * @return 培训开始时间
     */
    public String getTrainStartTime() {
        return trainStartTime;
    }

    /** 
     * 设置 培训开始时间 HSE_CM_TRAIN.trainStartTime
     * @param trainStartTime 培训开始时间
     */
    public void setTrainStartTime(String trainStartTime) {
        this.trainStartTime = trainStartTime == null ? null : trainStartTime.trim();
    }

    /** 
     * 获取 培训结束时间 HSE_CM_TRAIN.trainEndTime
     * @return 培训结束时间
     */
    public String getTrainEndTime() {
        return trainEndTime;
    }

    /** 
     * 设置 培训结束时间 HSE_CM_TRAIN.trainEndTime
     * @param trainEndTime 培训结束时间
     */
    public void setTrainEndTime(String trainEndTime) {
        this.trainEndTime = trainEndTime == null ? null : trainEndTime.trim();
    }

    /** 
     * 获取 实际培训学时 HSE_CM_TRAIN.actualTrainHour
     * @return 实际培训学时
     */
    public Integer getActualTrainHour() {
        return actualTrainHour;
    }

    /** 
     * 设置 实际培训学时 HSE_CM_TRAIN.actualTrainHour
     * @param actualTrainHour 实际培训学时
     */
    public void setActualTrainHour(Integer actualTrainHour) {
        this.actualTrainHour = actualTrainHour;
    }

    /** 
     * 获取 培训单位id（企业内） HSE_CM_TRAIN.trainDeptId
     * @return 培训单位id（企业内）
     */
    public String getTrainDeptId() {
        return trainDeptId;
    }

    /** 
     * 设置 培训单位id（企业内） HSE_CM_TRAIN.trainDeptId
     * @param trainDeptId 培训单位id（企业内）
     */
    public void setTrainDeptId(String trainDeptId) {
        this.trainDeptId = trainDeptId == null ? null : trainDeptId.trim();
    }

    /** 
     * 获取 授课人id（企业内）（多个逗号分隔） HSE_CM_TRAIN.teacherId
     * @return 授课人id（企业内）（多个逗号分隔）
     */
    public String getTeacherId() {
        return teacherId;
    }

    /** 
     * 设置 授课人id（企业内）（多个逗号分隔） HSE_CM_TRAIN.teacherId
     * @param teacherId 授课人id（企业内）（多个逗号分隔）
     */
    public void setTeacherId(String teacherId) {
        this.teacherId = teacherId == null ? null : teacherId.trim();
    }

    /** 
     * 获取 是否企业外部授课（0企业内，1企业外） HSE_CM_TRAIN.isTrainOutside
     * @return 是否企业外部授课（0企业内，1企业外）
     */
    public Integer getIsTrainOutside() {
        return isTrainOutside;
    }

    /** 
     * 设置 是否企业外部授课（0企业内，1企业外） HSE_CM_TRAIN.isTrainOutside
     * @param isTrainOutside 是否企业外部授课（0企业内，1企业外）
     */
    public void setIsTrainOutside(Integer isTrainOutside) {
        this.isTrainOutside = isTrainOutside;
    }

    /** 
     * 获取 授课人姓名（企业外） HSE_CM_TRAIN.teacherNameOutside
     * @return 授课人姓名（企业外）
     */
    public String getTeacherNameOutside() {
        return teacherNameOutside;
    }

    /** 
     * 设置 授课人姓名（企业外） HSE_CM_TRAIN.teacherNameOutside
     * @param teacherNameOutside 授课人姓名（企业外）
     */
    public void setTeacherNameOutside(String teacherNameOutside) {
        this.teacherNameOutside = teacherNameOutside == null ? null : teacherNameOutside.trim();
    }

    /** 
     * 获取 培训单位名称（企业外） HSE_CM_TRAIN.trainDeptNameOutside
     * @return 培训单位名称（企业外）
     */
    public String getTrainDeptNameOutside() {
        return trainDeptNameOutside;
    }

    /** 
     * 设置 培训单位名称（企业外） HSE_CM_TRAIN.trainDeptNameOutside
     * @param trainDeptNameOutside 培训单位名称（企业外）
     */
    public void setTrainDeptNameOutside(String trainDeptNameOutside) {
        this.trainDeptNameOutside = trainDeptNameOutside == null ? null : trainDeptNameOutside.trim();
    }

    /** 
     * 获取 是否取证（0否，1是） HSE_CM_TRAIN.needCertificate
     * @return 是否取证（0否，1是）
     */
    public Integer getNeedCertificate() {
        return needCertificate;
    }

    /** 
     * 设置 是否取证（0否，1是） HSE_CM_TRAIN.needCertificate
     * @param needCertificate 是否取证（0否，1是）
     */
    public void setNeedCertificate(Integer needCertificate) {
        this.needCertificate = needCertificate;
    }

    /** 
     * 获取 培训人数 HSE_CM_TRAIN.trainNum
     * @return 培训人数
     */
    public Integer getTrainNum() {
        return trainNum;
    }

    /** 
     * 设置 培训人数 HSE_CM_TRAIN.trainNum
     * @param trainNum 培训人数
     */
    public void setTrainNum(Integer trainNum) {
        this.trainNum = trainNum;
    }

    /** 
     * 获取 合格人数 HSE_CM_TRAIN.qualifiedNum
     * @return 合格人数
     */
    public Integer getQualifiedNum() {
        return qualifiedNum;
    }

    /** 
     * 设置 合格人数 HSE_CM_TRAIN.qualifiedNum
     * @param qualifiedNum 合格人数
     */
    public void setQualifiedNum(Integer qualifiedNum) {
        this.qualifiedNum = qualifiedNum;
    }

    /** 
     * 获取 培训内容 HSE_CM_TRAIN.trainContent
     * @return 培训内容
     */
    public String getTrainContent() {
        return trainContent;
    }

    /** 
     * 设置 培训内容 HSE_CM_TRAIN.trainContent
     * @param trainContent 培训内容
     */
    public void setTrainContent(String trainContent) {
        this.trainContent = trainContent == null ? null : trainContent.trim();
    }

    /** 
     * 获取 培训总结 HSE_CM_TRAIN.trainSummary
     * @return 培训总结
     */
    public String getTrainSummary() {
        return trainSummary;
    }

    /** 
     * 设置 培训总结 HSE_CM_TRAIN.trainSummary
     * @param trainSummary 培训总结
     */
    public void setTrainSummary(String trainSummary) {
        this.trainSummary = trainSummary == null ? null : trainSummary.trim();
    }

    /** 
     * 获取 考核方式 HSE_CM_TRAIN.examMode
     * @return 考核方式
     */
    public String getExamMode() {
        return examMode;
    }

    /** 
     * 设置 考核方式 HSE_CM_TRAIN.examMode
     * @param examMode 考核方式
     */
    public void setExamMode(String examMode) {
        this.examMode = examMode == null ? null : examMode.trim();
    }

    public String getTrainTypeName() {
        return trainTypeName;
    }

    public void setTrainTypeName(String trainTypeName) {
        this.trainTypeName = trainTypeName;
    }

    public String getAddUserName() {
        return addUserName;
    }

    public void setAddUserName(String addUserName) {
        this.addUserName = addUserName;
    }

    public String getAddDeptName() {
        return addDeptName;
    }

    public void setAddDeptName(String addDeptName) {
        this.addDeptName = addDeptName;
    }

    public List<User> getTeacherList() {
        return teacherList;
    }

    public void setTeacherList(List<User> teacherList) {
        this.teacherList = teacherList;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("StaffTrain{");
        sb.append("id='").append(id).append('\'');
        sb.append(", code='").append(code).append('\'');
        sb.append(", remarks='").append(remarks).append('\'');
        sb.append(", delState=").append(delState);
        sb.append(", addUserId='").append(addUserId).append('\'');
        sb.append(", addDeptId='").append(addDeptId).append('\'');
        sb.append(", addTime='").append(addTime).append('\'');
        sb.append(", updateDeptId='").append(updateDeptId).append('\'');
        sb.append(", updateUserId='").append(updateUserId).append('\'');
        sb.append(", updateTime='").append(updateTime).append('\'');
        sb.append(", name='").append(name).append('\'');
        sb.append(", year=").append(year);
        sb.append(", trainTypeId='").append(trainTypeId).append('\'');
        sb.append(", trainStartTime='").append(trainStartTime).append('\'');
        sb.append(", trainEndTime='").append(trainEndTime).append('\'');
        sb.append(", actualTrainHour=").append(actualTrainHour);
        sb.append(", trainDeptId='").append(trainDeptId).append('\'');
        sb.append(", teacherId='").append(teacherId).append('\'');
        sb.append(", isTrainOutside=").append(isTrainOutside);
        sb.append(", teacherNameOutside='").append(teacherNameOutside).append('\'');
        sb.append(", trainDeptNameOutside='").append(trainDeptNameOutside).append('\'');
        sb.append(", needCertificate=").append(needCertificate);
        sb.append(", trainNum=").append(trainNum);
        sb.append(", qualifiedNum=").append(qualifiedNum);
        sb.append(", trainContent='").append(trainContent).append('\'');
        sb.append(", trainSummary='").append(trainSummary).append('\'');
        sb.append(", examMode='").append(examMode).append('\'');
        sb.append(", trainTypeName='").append(trainTypeName).append('\'');
        sb.append(", addUserName='").append(addUserName).append('\'');
        sb.append(", addDeptName='").append(addDeptName).append('\'');
        sb.append(", teacherList=").append(teacherList);
        sb.append('}');
        return sb.toString();
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        StaffTrain that = (StaffTrain) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (code != null ? !code.equals(that.code) : that.code != null) return false;
        if (remarks != null ? !remarks.equals(that.remarks) : that.remarks != null) return false;
        if (delState != null ? !delState.equals(that.delState) : that.delState != null) return false;
        if (addUserId != null ? !addUserId.equals(that.addUserId) : that.addUserId != null) return false;
        if (addDeptId != null ? !addDeptId.equals(that.addDeptId) : that.addDeptId != null) return false;
        if (addTime != null ? !addTime.equals(that.addTime) : that.addTime != null) return false;
        if (updateDeptId != null ? !updateDeptId.equals(that.updateDeptId) : that.updateDeptId != null) return false;
        if (updateUserId != null ? !updateUserId.equals(that.updateUserId) : that.updateUserId != null) return false;
        if (updateTime != null ? !updateTime.equals(that.updateTime) : that.updateTime != null) return false;
        if (name != null ? !name.equals(that.name) : that.name != null) return false;
        if (year != null ? !year.equals(that.year) : that.year != null) return false;
        if (trainTypeId != null ? !trainTypeId.equals(that.trainTypeId) : that.trainTypeId != null) return false;
        if (trainStartTime != null ? !trainStartTime.equals(that.trainStartTime) : that.trainStartTime != null)
            return false;
        if (trainEndTime != null ? !trainEndTime.equals(that.trainEndTime) : that.trainEndTime != null) return false;
        if (actualTrainHour != null ? !actualTrainHour.equals(that.actualTrainHour) : that.actualTrainHour != null)
            return false;
        if (trainDeptId != null ? !trainDeptId.equals(that.trainDeptId) : that.trainDeptId != null) return false;
        if (teacherId != null ? !teacherId.equals(that.teacherId) : that.teacherId != null) return false;
        if (isTrainOutside != null ? !isTrainOutside.equals(that.isTrainOutside) : that.isTrainOutside != null)
            return false;
        if (teacherNameOutside != null ? !teacherNameOutside.equals(that.teacherNameOutside) : that.teacherNameOutside != null)
            return false;
        if (trainDeptNameOutside != null ? !trainDeptNameOutside.equals(that.trainDeptNameOutside) : that.trainDeptNameOutside != null)
            return false;
        if (needCertificate != null ? !needCertificate.equals(that.needCertificate) : that.needCertificate != null)
            return false;
        if (trainNum != null ? !trainNum.equals(that.trainNum) : that.trainNum != null) return false;
        if (qualifiedNum != null ? !qualifiedNum.equals(that.qualifiedNum) : that.qualifiedNum != null) return false;
        if (trainContent != null ? !trainContent.equals(that.trainContent) : that.trainContent != null) return false;
        if (trainSummary != null ? !trainSummary.equals(that.trainSummary) : that.trainSummary != null) return false;
        if (examMode != null ? !examMode.equals(that.examMode) : that.examMode != null) return false;
        if (trainTypeName != null ? !trainTypeName.equals(that.trainTypeName) : that.trainTypeName != null)
            return false;
        if (addUserName != null ? !addUserName.equals(that.addUserName) : that.addUserName != null) return false;
        if (addDeptName != null ? !addDeptName.equals(that.addDeptName) : that.addDeptName != null) return false;
        return teacherList != null ? teacherList.equals(that.teacherList) : that.teacherList == null;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (code != null ? code.hashCode() : 0);
        result = 31 * result + (remarks != null ? remarks.hashCode() : 0);
        result = 31 * result + (delState != null ? delState.hashCode() : 0);
        result = 31 * result + (addUserId != null ? addUserId.hashCode() : 0);
        result = 31 * result + (addDeptId != null ? addDeptId.hashCode() : 0);
        result = 31 * result + (addTime != null ? addTime.hashCode() : 0);
        result = 31 * result + (updateDeptId != null ? updateDeptId.hashCode() : 0);
        result = 31 * result + (updateUserId != null ? updateUserId.hashCode() : 0);
        result = 31 * result + (updateTime != null ? updateTime.hashCode() : 0);
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (year != null ? year.hashCode() : 0);
        result = 31 * result + (trainTypeId != null ? trainTypeId.hashCode() : 0);
        result = 31 * result + (trainStartTime != null ? trainStartTime.hashCode() : 0);
        result = 31 * result + (trainEndTime != null ? trainEndTime.hashCode() : 0);
        result = 31 * result + (actualTrainHour != null ? actualTrainHour.hashCode() : 0);
        result = 31 * result + (trainDeptId != null ? trainDeptId.hashCode() : 0);
        result = 31 * result + (teacherId != null ? teacherId.hashCode() : 0);
        result = 31 * result + (isTrainOutside != null ? isTrainOutside.hashCode() : 0);
        result = 31 * result + (teacherNameOutside != null ? teacherNameOutside.hashCode() : 0);
        result = 31 * result + (trainDeptNameOutside != null ? trainDeptNameOutside.hashCode() : 0);
        result = 31 * result + (needCertificate != null ? needCertificate.hashCode() : 0);
        result = 31 * result + (trainNum != null ? trainNum.hashCode() : 0);
        result = 31 * result + (qualifiedNum != null ? qualifiedNum.hashCode() : 0);
        result = 31 * result + (trainContent != null ? trainContent.hashCode() : 0);
        result = 31 * result + (trainSummary != null ? trainSummary.hashCode() : 0);
        result = 31 * result + (examMode != null ? examMode.hashCode() : 0);
        result = 31 * result + (trainTypeName != null ? trainTypeName.hashCode() : 0);
        result = 31 * result + (addUserName != null ? addUserName.hashCode() : 0);
        result = 31 * result + (addDeptName != null ? addDeptName.hashCode() : 0);
        result = 31 * result + (teacherList != null ? teacherList.hashCode() : 0);
        return result;
    }
}